Objetivo

Detectar patrones alcistas mediante modelos predictivos. La idea inicial es armar un modelo de clasificación binaria con entrenamiento supervisado.

Obtener datos

Partimos de una tabla con 6 columnas: fecha, open, high, low, close, volume. Para hacer una prueba inicial, conectamos google sheets a google finance, copiar/pegar a un .csv (sheets no permite exportar datos de google finance).

Nomenclatura

  • N: Cantidad de barras del set
  • O: Open, precio de apertura
  • H: High, precio máximo
  • L: Low, precio mínimo
  • C: Close, precio de cierre
  • V: Volumen
##                  Date  Open  High   Low Close   Volume
## 1 2009-01-02 16:00:00 37.72 40.06 37.50 39.51  9966400
## 2 2009-01-05 16:00:00 39.38 40.85 38.05 39.48 10909178
## 3 2009-01-06 16:00:00 41.03 41.47 38.36 40.14 11546491
## 4 2009-01-07 16:00:00 39.06 39.22 36.86 37.21  7676605
## 5 2009-01-08 16:00:00 36.98 38.47 36.13 38.34  6595356
## 6 2009-01-09 16:00:00 38.64 38.99 36.51 36.70  6376795

N = 2638

Etiquetar los datos históricos

Antes de entrenar el modelo vamos a etiquetar los datos históricos indicando cuándo hubo setup y cuándo no.

Parámetros

  • B: Back, barras del pasado usadas como input del modelo. (B = 100)
  • F: Future, barras a futuro para la predicción. (F = 20)
  • P: Profit target (P>1). (P = 1.3)
  • S: Stop loss (S<1). (S = 0.95)

Criterio para etiquetar

Target_i = N/A para todo i < H || i > (N-F). Target_i = (H_i+k >= C_i . T para algún k, 0 < k <= F ) && (L_i+j > C_i . L para todo 0 < j <= k).

En palabras: hay setup (target = TRUE) si dentro de las próximas F barras el máximo supera el profit target antes de que el mínimo supere el stop loss.

Datos etiquetados

To-Do

  • Ajustar la tasa de setups variando los parámetros S, P, F
  • Armar el dataset de input aplanado
  • Partirlo en training y test
  • Equilibrar la cantidad de T y F
  • Armar una red y entrenarla
  • Medir sobre test
  • Calcular truePositive, falsePositive
  • Analizar si es necesario separar en training, validation, test para tunear los hiperparámetros
  • Iterar
  • Aplicar log a los precios
  • Aplicar log al volumen?
  • Automatizar la bajada de datos
  • Bajar datos de varios activos
  • Calcular tasa de setup para cada activo
  • Armar datasets consolidando varios activos
  • Entrenar y tunear hiperparámetros
  • Automatizar la predicción diaria
  • Averiguar cómo funciona la API de Ameritrade
  • Diseñar un autómata que opere a partir de las predicciones
  • Poner a funcionar el autómata en demo